package com.cskaoyan.market.util.wx;

import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;

import javax.validation.ValidationException;

public class ValidationUtil {

    public static void validate(BindingResult bindingResult) throws ValidationException {
        if(bindingResult.hasFieldErrors()) {
            //为什么可以通过对成员属性校验，进而对参数进行校验呢？
            //因为我们在设置形参user时，设置的成员变量要求和参数的名称保持一致
            //所以成员变量的error那么便是参数的error，即不符合特定的要求
            FieldError fieldError = bindingResult.getFieldError();
            //哪个成员变量出问题了，成员变量和参数的名称对应----> 参数不符合要求
            String field = fieldError.getField();
            //成员变量传递的值是多少，不符合要求
            Object rejectedValue = fieldError.getRejectedValue();
            //显示错误的原因
            String defaultMessage = fieldError.getDefaultMessage();
            throw new ValidationException(field + rejectedValue + defaultMessage);
        }
    }
}